package com.neusoft.elmboot.mapper;

import com.neusoft.elmboot.po.Role;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import com.neusoft.elmboot.po.User;

import java.util.List;

@Mapper
public interface UserMapper {

	@Select("select * from user where userId=#{userId} and password=#{password}")
	public User getUserByIdByPass(User user);


	@Select("select count(*) from user where userId=#{userId}")
	public int getUserById(String userId);

	@Insert("insert into user(userId,password,userName,userSex,userImg) values(#{userId},#{password},#{userName},#{userSex},#{userImg})")
	public int saveUser(User user);


	/**
	 * 通过ID查询单条数据
	 *
	 * @param userId 主键
	 * @return 实例对象
	 */
	User queryById(String userId);

	/**
	 * 查询指定行数据
	 *
	 * @param user 查询条件
	 * @return 对象列表
	 */
	List<User> queryAllByLimit(User user);

	/**
	 * 修改数据
	 *
	 * @param user 实例对象
	 * @return 影响行数
	 */
	int update(User user);

	/**
	 * 通过主键删除数据
	 *
	 * @param userId 主键
	 * @return 影响行数
	 */
	int deleteById(String userId);

	Role selectRoleByUserId(Integer userId);

	/**
	 * 根据 用户id 查询对应的权限列表。
	 * @param userId - 用户id
	 * @return
	 */
	List<String> selectPermApiByUserId(String userId);
}